Apparatus and method for providing subsystem processor based power shifting for peripheral devices

ABSTRACT

A computing device and method controls power consumption of a graphics processing unit in the computing device by the GPU determining an allocated power for the USB device connected through a USB port, such as a USB-C port. The GPU issues allocated power information for the external USB device to cause the allocated power to be provided to the USB device and includes issuing allocated power information to a power delivery (PD) controller that is connected to a USB port. In some implementations, the GPU shifts at least a portion of the allocated power from the USB device back to the GPU in response to a usage change event associated with the USB device for improving GPU performance. The usage change event can be a disconnect event of the USB device, a power renegotiation event between the USB device and the GPU, or any other suitable usage change event.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation application of and claims priority for patententitled to a filing date and claiming the benefit of earlier-filed U.S.patent application Ser. No. 17/385,244, filed Jul. 26, 2021, which is acontinuation and claims priority to U.S. Pat. No. 11,073,889, issuedJul. 27, 2021. Each patent application cited herein is herebyincorporated by reference in its entirety.

BACKGROUND OF THE DISCLOSURE

Computing devices such as laptops, tablets, smartphones, game consoles,televisions, set top boxes and other devices have universal serial bus(USB) ports such as USB-C ports that connect to external USB devices.USB devices may include for example, portable devices that obtain powerfrom the computing device. For example, when a virtual reality headsetis connected to a computing device, the virtual reality headset mayobtain its power from the computing device through the USB-C port.

Some computing devices allocate a portion of total system power to theUSB device. However, when the USB device does not use its allocatedpower, performance of subsystems within the computing device, such asgraphics subsystems that employ graphics processing units (GPUs), orother subsystems may have reduced performance due to the unused powerallocated to the USB device. Accordingly, there exists a need forimproved computing device operation when USB devices are supported.

BRIEF DESCRIPTION OF THE DRAWINGS

The implementations will be more readily understood in view of thefollowing description when accompanied by the below figures, whereinlike reference numerals represent like elements, and wherein:

FIG. 1 is a block diagram illustrating one example of a computing devicein accordance with one example set forth in the disclosure;

FIG. 2 is a flowchart illustrating one example of a method forcontrolling power consumption of a graphics processing unit inaccordance with one example set forth in the disclosure;

FIG. 3 is a diagram illustrating operation and a communication flow witha USB device in accordance with one example set forth in the disclosure;

FIG. 4 is a diagram illustrating operation and a communication flow witha USB device in accordance with one example set forth in the disclosure;

FIG. 5 is a diagram illustrating operation and a communication flow witha USB device in accordance with one example set forth in the disclosure;

FIG. 6 is a flowchart illustrating one example of a method forcontrolling power consumption of a graphics processing unit inaccordance with one example set forth in the disclosure;

FIG. 7 is a diagram illustrating operation and a communication flow witha USB device in accordance with one example set forth in the disclosure;and

FIG. 8 is a block diagram illustrating a computing device in accordancewith one example set forth in the disclosure.

DETAILED DESCRIPTION OF IMPLEMENTATIONS

Briefly, a computing system employs a graphics processing unit (GPU)that employs a USB power shifting operation. In one example, a staticapproach is used by the graphics processing unit to allocate power to aUSB device and shifts allocated power back from the USB device to thegraphics processing unit based on usage change events such asconnectivity events. In some examples, a magnitude of the USB allocatedpower remains constant. In some implementations, a GPU based USB powershifting operation employs a dynamic approach instead of, or in additionto, the static approach wherein the magnitude of the USB allocated powerchanges upon request from the USB device for a new power level. In someimplementations, the USB allocated power is repeatedly adjusted andshifted between the GPU and the USB device based on USB deviceoperational requirements and GPU performance requirements in view of oneor more applications that are employing the GPU. In other examples, realtime monitoring of USB device power level is employed to provide a typeof real time power level allocation operation between the GPU and theUSB device. By employing a GPU with USB power shifting logic, GPUcontrol of power shifting reduces costs, and can increase GPUperformance by eliminating external chips to control GPU power shiftingbetween the GPU and USB devices and also increases GPU performance withincreased power levels unused by the USB device. Other technicaladvantages will be recognized by those of ordinary skill in the art.

In some implementations, a computing device and method controls powerconsumption of a graphics processing unit in the computing device by theGPU determining an allocated power for the USB device connected througha USB port, such as a USB-C port. The GPU issues allocated powerinformation for the external USB device to cause the allocated power tobe provided to the USB device and includes in some examples, issuingallocated power information to a power delivery (PD) controller (e.g., apower delivery chip) that is connected to a USB port. In someimplementations, the GPU shifts at least a portion of the allocatedpower from the USB device back to the GPU in response to a usage changeevent associated with the USB device. The usage change event can be adisconnect (or connect) event of the USB device, a power renegotiationevent between the USB device and the GPU, or any other suitable usagechange event.

In some implementations, the GPU shifts at least a portion of theallocated power back to the external device in response to another usagechange event such as a reconnection of the device to the USB port, or apower renegotiation event wherein the external device asks for more orless power. In some implementations, the GPU determines the allocatedpower for the USB device based on usage requirements of both the GPU andbased on usage requirements of the external USB device. The GPU shifts aportion of the allocated power from the external USB device to the GPUby, for example, maintaining an amount of total allocated power constantor changing an amount of allocated power upon request from the externaldevice.

In other implementations, a dynamic approach is used wherein the GPUuses the allocated power to change a performance level of the GPU.Another processor, such as a central processing unit (CPU) for example,or any other suitable device, determines additional GPU tuningperformance data such as desired pixel render quality, frame ratepreference, and/or other requirements that an application executing onthe processor wants from the GPU. In some examples, the determination ofthe additional GPU tuning performance data is based on available GPUpower and the power that is provided to the USB device. In response tothe determination, the method includes changing the GPU performancelevel using the additional GPU tuning performance data.

In other implementations, periodic real time monitoring of externaldevice power requirements is also provided wherein the GPU shifts atleast a portion of the allocated power by obtaining actual powerconsumption data of the USB device, when the USB device has beenallocated power. The method also includes, based on the powerconsumption data of the USB device, changing an amount of powerallocated to the GPU. For example, unused power allocated to the USBdevice is used by the GPU on a real time basis.

In some implementations, the shifting of the power between the USBdevice and the GPU includes using the allocated power of the USB deviceto increase or decrease GPU performance such as an image renderingquality and/or frame rate output by the GPU while leaving one or more ofa frequency and/or voltage setting of the GPU at a current level. Inother implementations, frequency and/or voltage is adjusted to provideincreased or decreased GPU performance.

In some implementations, GPU performance in the form of pixel renderquality and frame rate is determined based on the level of shifted powerto meet critical application metrics for applications that are executingusing the GPU. For example, when power is allocated from the

USB device back to the GPU, the GPU improves frame rate, pixel qualitysuch as employing improved anti-aliasing, or other operations to improvethe image quality generated by the GPU. When the USB device isreallocated power or provided increased power, the GPU in someimplementations, decreases the GPU performance such as frame rate and/orimage quality without reducing a frequency or voltage used by the GPU inthe process of shifting USB allocated power back to the USB port for useby the USB device.

FIG. 1 illustrates one example of a computing device 100 that includes aUSB port 102, a graphics processing unit 104, a power delivery (PD)controller 106 that interfaces with the USB port 102 and a powerregulator 108. If desired, a processor 110, such as a central processingunit (CPU), or other suitable processor is employed that executesapplications that utilizes the graphics processing unit 104 to generatevideo, 3D graphics data (e.g., games, overlays, virtual reality output),audio or any other output provided by the GPU to one or more USB devicesand/or displays (not shown) or for providing image output to otherdevices. A USB device 112 is connectable to the USB port 102. The USBdevice 112 for purposes of illustration only will be referred to as avirtual reality headset. However, any USB device may be employed. Inaddition, the USB device 112 by way of example is a USB-C device and theUSB port 102 in this example is a USB-C port. However, any suitable USBport can be employed. The power regulator 108 provides power 114 to theUSB port 102 for use by the USB device 112 when the USB device isconnected to the USB port 102. In some implementations, power regulator108 provides power telemetry information 116 for real time powerconsumption monitoring of the USB device to the power deliverycontroller 106 and/or the GPU 104 as shown by dashed lines 118. Powertelemetry information 116 includes by way of example, voltage andcurrent levels being provided by the power regulator 108 to the USBdevice 112 and/or the GPU 104.

The GPU 104 in one example includes one or more GPU cores and may beimplemented in any suitable manner including as a stand alone chip, asystem on chip, may be integrated with the processor 110 on a commonchip if desired or in any other suitable configuration. The GPU includesUSB power shifting logic 120, in this example, implemented as firmware,stored in memory such as ROM or any other suitable memory, executing byone or more processors in a GPU core. However, any suitable GPUconfiguration may be employed. The USB power shifting logic 120 in oneexample, uses USB power shifting registers 122 to store information usedto control power shifting between the GPU 104 and USB device 112 undercontrol of the PD controller 106. When the USB device 112 is consumingless power than is allocated for it, the GPU 104 shifts the extra orunused power to the GPU 104. The GPU 104 changes its operatingperformance without changing its frequency and voltage levels in someimplementations.

With a static approach, the GPU 104 shifts the unused power once at thesame time the USB device 112 is connected to the USB port 102. In otherimplementations, a dynamic approach is used instead of, or in additionto, the static approach and shifts different magnitudes of the unusedpower. In such implementations, the power is shifted such that the GPU104 gets an amount of extra power budget that was not used by the USBdevice 112 that varies in magnitude according to the real time powerconsumption of the USB device 112. Increased GPU power performanceresults when the power is adjusted from the USB device 112 to the GPU104. The interconnection of the GPU 104 to the power delivery controller106, processor 110 and power regulator 108 may be done in anyconventional manner including, for example, using interrupt drivenretrieval of USB power information from the power delivery controller106 through suitable general purpose input/output connections, throughsuitable bus connections or in any other suitable manner.

Referring also to FIG. 2 , a method of operation of the GPU 104 isshown. As shown in block 200, the method starts, for example, bycomputing device 100 initialization or in any other suitable manner. Asshown in block 202, the GPU 104 determines an allocated power for theUSB device 112. For example, the USB power shifting logic 120 allocatesa maximum power that the USB device 112 is capable of consuming. Thismay be a default power. For example, the GPU 104 as a subsystem of thecomputing device 100 is assigned 300 watts as part of an initializationoperation. The GPU 104, in one example, assigns 10% of its 300 wattallocation, namely 30 watts, to be allocated to the USB device 112. Asshown in block 204, the USB power shifting logic 120 provides theallocated power information 126, in this example, 30 watts, to cause theallocated power to be provided by the power regulator 108 to the USBdevice 112. In this example, the USB allocated power information 126 forthe USB device 112 is provided to the power delivery controller 106which in turn communicates the information to the power regulator 108.

The power delivery controller 106 in one example stores the USBallocated power information 126 in a database or a table on a per-USBdevice basis. If the USB device 112 is connected to the USB port 102,the 30 watts is provided to the USB device 112. However, if the USBdevice is not connected, as shown in block 206, the method includesshifting, by the GPU, at least a portion of the allocated power from theUSB device 112 to the GPU in response to a usage change event associatedwith the external USB device. In other implementations, if the USBdevice is connected, but monitoring of actual power use of the USBdevice shows the device does not require the total 30 watts, the PDcontroller 106 informs the GPU 104 and the GPU 104 uses the unused powerto improve its operation.

In a static operation, the magnitude of the USB allocated power isconstant, meaning that the 30 watt allocated power is the only powerlevel that is allocated to or from the USB device 112. A usage changeevent is detected by the GPU 104, through the USB port 102 or the powerdelivery controller 106 when, for example, the USB device is connectedor disconnected from the USB port. In the example where the USB device112 is not connected, the GPU shifts the 30 watt power allocation backto the GPU so that the GPU now can employ all 300 watts of the totalallocated power. When the USB device 112 is detected as being connected,the GPU 104 receives device information 128 indicating, for example,that a device is connected, the type of device being connected and itsoperational parameters that are relevant for the GPU 104. For example,operational parameters include the display resolution of the virtualheadset (when a virtual headset is the USB device), the maximum power tobe used by the USB device when it is connected and any other suitableinformation. When the USB device is connected, the GPU 104 reallocatesthe allocated power back to the USB device. As such, the GPU identifiesopportunities to shift (reallocate) power between the USB device 112 andthe GPU 104 while at the same time keeping the subsystem total powerbudget (e.g., 300 watts) from exceeding its maximum level.

The process then continues as shown in block 208 so that the powerallocated to the USB device 112 is reallocated or shifted back to theGPU 104 when the USB device 112 is not connected to the USB port 102.The reallocated power is then used by the GPU 104 to improveperformance. For example, the GPU adjusts its pixel render quality byapplying anti-aliasing or multiple passes of anti-aliasing to improveoutput image quality of an image frame. In some implementations, the GPUincreases the frame rate output for higher quality image perception by auser or adjusts any other performance operation by using the reallocatedpower. In one example, the improved performance is done withoutincreasing the frequency of operation of the GPU or increasing thevoltage level of the GPU.

Referring also to FIG. 3 , a communication and operation diagramillustrates communication between the GPU 104 and the power delivery PDcontroller 106. In this example, the GPU 104 determines the allocatedpower for the USB device 112 as part of a firmware initializationprocess wherein the USB device 112 is allocated a maximum or defaultpower that the device is capable of consuming based on a predeterminedpercentage. Using the previous example of 300 watts for the maximum GPUsubsystem power availability, 10% is determined as a default allocatedpower level (30 watts) for the USB device 112 as shown by operation 300.An initialization handshake operation 302 is performed between the GPU104 and the USB power delivery controller 106 to establish acommunication link. The GPU 104 issues the allocated power information126 shown as communication 304 to the USB power delivery controller 106.In this example, a 30 watt power allocation is provided by the GPU 104to the PD controller 106.

As illustrated at operation 306, the USB device 112 is not connected tothe USB port as determined by the USB power delivery controller 106.Accordingly, as shown in communication 308, the USB power deliverycontroller 106 communicates the usage change event 128 of the USB device112 to the GPU 104 to indicate a disconnect state to the USB device 112.In response to the usage change event communication 308, the GPU 104shifts the USB allocated power, in this example 30 watts, back to theGPU 104 by, for example, informing the power delivery controller 106using the USB power allocation via information 126 of the USB allocatedadjustment. This is shown as communication 310. The power deliverycontroller 106 then informs the power regulator 108 to provide theallocated power as shown via power line 130 so that the GPU 104 can usethe power that was previously allocated to the USB device 112 for theGPU 104 instead. The shifting of the power to the GPU 104 from the USBdevice 112 allows the GPU 104 to improve its performance.

For example, as shown in block 312, the GPU 104 improves performance, inone example, by increasing the frame rate and/or image quality producedby the GPU 104 by employing anti-aliasing or other image enhancementoperation using the shifted power. As shown by communication 314, whenthe USB device 112 connect event is detected by the power deliverycontroller 106, device information is provided to the GPU 104 as part ofthe usage change event 128 and the USB power delivery controller 106communicates the presence of the USB device 112 as shown incommunication 316 by providing the device information to the GPU 104.Because the USB device 112 is now connected, the GPU 104 shifts the USBallocated power back to the USB port 102 as shown by operation 318. Forexample, the USB power shifting logic 120 informs the power deliverycontroller 106 to allocate 30 watts back to the USB device 112. Thepower delivery controller 106 then informs the power regulator 108(provides information 126) to provide the power 114 through the USB port102 to the USB device 112. The GPU 104 then decreases its performance byone or more of reducing the frame rate output by the GPU, reducing theimage quality compared to the image quality and frame rate provided whenthe GPU was using the USB device allocated power or other performanceparameter. This is shown in block 320. When a USB device 112 disconnectevent is detected as shown in 322, the USB power delivery controller 106communicates the absence of the USB device 112 to the GPU 104 as shownin communication 324. The GPU 104 then shifts the USB allocated powerback to the GPU 104 as shown in operation 326 and performs the GPUperformance improvement operation using the USB allocated power. Theoperation continues by allocating the maximum power allocation of theUSB device 112 back to the GPU 104 and vice versa depending upon whetherthe USB device is connected or not.

FIG. 4 illustrates another example of the USB power shifting operationthat employs a dynamic approach and is different from that describedwith respect to FIG. 3 in that the magnitude of the USB allocated poweris varied upon request from the USB device 112 for a new power level. Assuch, the magnitude of the USB allocated power is not constant in thisexample. Operations are similar to those shown in FIG. 3 but as shown byoperation 400, in this example, the USB device 112 issues a powerrequest 131 (see FIG. 1 ) to request a different power level than theallocated 30 watts. In this example, the USB device 112 requests a lowerpower level, but a higher power level than the original allocated powerestablished in operation 300 may be also be requested. However, therequest for a different power must be valid, otherwise it will not beaccepted. This means, for example, that if the power requested by theUSB device 112 is greater than a maximum allowable allocated in block300, the USB power shifting logic 120 will ignore the request. The USBpower delivery controller 106 records and sends the power request 131 asreceived from the USB device to the GPU 104.

As shown by operation 404, the GPU 104 adjusts the magnitude of the USBallocated power based on the request 131. For example, in the case wherethe USB device 112 asks for 20 watts but was allocated 30 watts, the GPU104 allocates the unused 10 watts to the GPU 104 and improves GPUperformance as previously described. The GPU 104 informs the powerdelivery controller 106 of the new newly accepted lower power allocation(information 126). The PD controller 106 then informs the powerregulator 108 to reduce the power for the USB device 112 to 20 wattsinstead of 30 watts and provide the additional 10 watts to the GPU 104.Prior to approving the request, the power request 131 is checked againsta power control policy by the GPU 104 such as data representing that therequest 131 cannot request power above a maximum amount or must bewithin a desired range or that the request must be within a particularduration from a previous request to avoid undesirable power oscillationoccurring in the GPU and/or USB device. Any other suitable policyconsiderations may also be employed.

FIG. 5 illustrates an example of a dynamic GPU based power shiftingoperation where, in this example, application based feedback is employedby the processor 110 executing a driver. The processor 100 serves as GPUperformance tuning logic 132 to facilitate additional GPU performancetuning in addition to the performance tuning determined by the USB powershifting logic 120. The processor 110 also employs application profiledatabase 134 that includes additional GPU tuning performance data for aparticular application and for a particular GPU. This data may besupplied by the application provider, may be determined empirically bythe GPU vendor or may be provided from any other source. The applicationprofile database 134 includes data that represents, for example, variouspower levels and associated GPU performance tuning criteria that occursat the various power levels. Examples of the additional GPU tuningperformance data are shown in Tables 1 and 2 below.

TABLE 1 GPU GPU ideal USB subsystem USB power Device Appli- power GPUDevice alloca- power App Based cation availability ID ID tion allocationtuning A 100 W G V 90 W 10 W Image quality B 100 W G V 92 W  8 W Framerate + image quality

TABLE 2 GPU Frame Quality Application allocated power rate settingsetting A 90 W 90 100 A 60W 60 90

In this example, the GPU 104 provides information 133 (FIG. 1 ) to theGPU performance tuning logic 132 via communication 500 that the USBdevice 112 is connected and the GPU 104 has shifted USB allocated powerfrom the GPU 104 to the USB device 112. The GPU performance tuning logic132 looks up the power level provided by the GPU in the profile database134 to determine the additional GPU tuning performance data for thegiven power level for the particular application that is executing onthe processor 110. Because the GPU power decreased, the GPU performancewill decrease. The GPU 104 shifts the USB allocated power back to theUSB port 102 and decreases GPU performance. The profile database 134 isused as the basis for determining, for example, a frame rate reductionor image quality reduction.

In this example, because the USB device 112 has been connected, the GPUavailable power is reduced and accordingly, the GPU performance tuninglogic 132 looks up in the table the corresponding GPU power that is tobe used. As such, the GPU 104 as part of communication 502 providesinformation 135 indicating the power levels for the USB device and GPUdevice. Alternatively, the GPU performance tuning logic 112 determinesthe information if desired. The GPU performance tuning logic 132determines additional GPU tuning performance data 503 by looking up thetuning performance data in the table and sends the additional GPU tuningperformance data 137 via communication 504 to the GPU 104 and the GPU104 further decreases or changes its GPU performance. Although the GPUalready decreased its GPU performance as shown by block 320 (e.g., byreducing the frame rate output by the GPU and/or reducing output imagequality such as reducing anti-aliasing from a 4× to a 2× anti-aliasingprocess), the additional GPU tuning performance data 137 providesadditional GPU performance reduction data to the GPU. For example, thedata 137 in one example controls the GPU to generate 1080p image framesand upscale the frames to a 4K format instead of processing all of theframes in a 4K format (which uses more bandwidth and power) where theUSB device 112 coupled to the GPU uses a 4K display format. Any othersuitable additional tuning performance data may also be employed.

As shown by communication 506, the tuning performance data 137, in oneexample, changes the USB device 112 power level that is different fromthe requested USB device power level 131 or may maintain the same powerlevel. For example, if the profile database 134 indicates that an evenlower USB device power level can be appropriate for a given applicationthe GPU performance tuning logic 132 instead provides data indicatingthat the USB device 112 should employ a lower power level. This powerlevel information is provided from the GPU 104 to the PD controller 106shown as communication 506. Communication 508 illustrates the GPUupdating the PD controller 106 to have a USB device power allocation tobe the maximum allowed based on the tuning performance data 137.

As shown by communication 400, the USB device can request a new powerlevel previously described with respect to FIG. 4 . The GPU 104 informsthe GPU performance tuning logic 132 in communication 510 thatadditional tuning performance data is requested based on a new USBdevice power level request. As shown by block 512, the GPU performancetuning logic 132 determines the additional GPU tuning performance datafrom the application profile database 134. The process then continuesdepending upon whether the USB device is disconnected or requestsanother different power level.

Referring to FIG. 5 and FIG. 6 , a method of controlling power in a GPUthat provides dynamic and real time power consumption monitoring will bedescribed. As shown by block 600, the GPU performance tuning logic 132determines additional GPU tuning performance data, in this example pixelrender quality, when the allocated power for the USB device is providedto the USB device. The determination of additional GPU tuningperformance data is done based on available GPU power as shown inTable 1. As such, the application executing on the processor is used toprovide additional control of the GPUs performance in response to theavailable GPU power provided to the GPU performance tuning logic 132.For example, as described with respect to FIG. 5 , when the USB deviceis connected to the USB port and is using the maximum allocated power,the GPU 104 decreases the performance when the power is reallocated fromthe GPU to the USB device. In addition, a further type of performancetuning is determined by the GPU performance tuning logic 132, such as anexecuting driver that uses the profile database 134 to determine whatpower quality adjustments should be made at which power levels.

As shown in block 602, the method also includes obtaining, in oneexample, periodically in real time, actual power consumption data of theUSB device when the allocated USB power is provided to the USB device.As such, when the USB device is connected, and the allocated power isbeing provided to the USB device, power telemetry data 116 is obtainedfrom the power regulator 108 by the power delivery controller 106. Thepower telemetry information 116 includes voltage and current levelscurrently being provided by the power regulator 108 to the USB port 102.As such, by employing periodic power usage monitoring of the USB device112, the GPU 104 can adjust its performance accordingly and allocateunused USB power on a real time basis when the USB device is actuallyusing less power than allocated to it, or the GPU can reduce itsoperating performance when the USB device starts using more power thanpreviously used (but still less than the maximum amount allocated). Assuch, as shown in block 604, the GPU 104 changes the amount of powerthat is allocated to the GPU 104 to provide a dynamic and real timemonitoring operation with application feedback, based on the powerconsumption data.

FIG. 7 illustrates operation and communication flow for the method shownin FIG. 6 . As shown, the power consumption data is communicated incommunication 700 as power telemetry data 116 from the power regulator108 to the GPU 104 either directly as shown by dashed line 118 (FIG. 1 )or through the PD controller 106. The USB power shifting logic 120 usesthe real time USB power consumption data and determines the remainingpower available to the GPU based on the allocated GPU power and providesthe GPU 104 and USB device power consumption information 500 to theprocessor 110. The GPU performance tuning logic 132 provides back to theGPU 104 the additional GPU tuning performance data 137 to additionallycontrol the GPU performance of the GPU.

FIG. 8 is a block diagram generally illustrating the computing device100 and illustrates memory 800 that is one or more memory products thatstores executable instructions that when executed, causes the GPU and/orCPU to perform the operations described herein. The memory 800 in oneexample is distributed memory within the computing device or outside ofthe computing device including but not limited to integrated ROM in theGPU and CPU and may be available through suitable bus structure shown as802 or may be memory including RAM or ROM implemented in any suitablemanner. The computing device 100 in this example, includes otherinput/output components such as display devices 806 and input/outputdevices 808 such as keyboards, touch screens or any other suitableinput/output devices. The devices are interconnected as known in the artand illustrated with bus structure 802 as well as interconnection 808.Also, the USB power delivery controller in one example is a processorthat executes firmware that stores the firmware in memory (e.g., ROM)such that the memory stores executable instructions that when executed,causes the USB power delivery controller to operate as described herein.

As described above, the GPU provides an improved power usage efficiencywith USB devices. GPU performance is improved by shifting unused powerfrom the USB device for the GPU. The improved performance in someimplementations results in an improved image quality by increasing anoutput frame rate and/or pixel rendering quality for output frames.

The above detailed description and the examples described therein havebeen presented for the purposes of illustration and description only andnot for limitation. For example, the operations described are done inany suitable manner. The operations described herein may be performed inany suitable order and the order provided is only given for purposes ofexample. It is therefore contemplated that the present implementationscover any and all modifications, variations or equivalents that fallwithin the scope of the basic underlying principles disclosed above andclaimed herein. Furthermore, while the above description describeshardware in the form of a processor executing code, hardware in the formof a state machine or dedicated logic capable of producing the sameeffect, other structures are also contemplated.

What is claimed is:
 1. A method for controlling power consumption of agraphics processing unit (GPU) in a first device comprising:determining, by the GPU, an allocated power for a USB device; issuing,by the GPU, allocated power information for the USB device to cause theallocated power to be provided to the USB device; and shifting, by theGPU, at least a portion of the allocated power from the USB device tothe GPU in response to a usage change event associated with the USBdevice.
 2. The method of claim 1 wherein shifting by the GPU comprisesusing the allocated power shifted from the USB device to change a GPUperformance level while leaving one or more of a frequency and voltagesetting of the GPU at a current level.
 3. The method of claim 1 whereinshifting by the GPU comprises using the allocated power shifted from theUSB device to change a GPU performance level, and the method furthercomprising: determining, by a processor coupled to the GPU, additionalGPU tuning performance data when allocated power is provided to the USBdevice, based on available GPU power; and using by the GPU, theadditional tuning performance data to change GPU performance when theallocated power is shifted from the USB device to the GPU.
 4. The methodof claim 1 further comprising shifting, by the GPU, at least a portionof the allocated power back to the USB device in response to anotherusage change event.
 5. The method of claim 1 wherein determining, by theGPU, the allocated power for the USB device is based on power usagerequirements of the GPU and based on power usage requirements of the USBdevice.
 6. The method of claim 1 wherein shifting, by the GPU, at leastthe portion of the allocated power from the USB device to the GPUcomprises at least one of: maintaining an amount of allocated powerconstant or changing an amount of allocated power upon request from theUSB device.
 7. The method of claim 1 comprising: determining, by aprocessor coupled to the GPU, additional GPU tuning performance datawhen allocated power is provided to the USB device, based on availableGPU power; using, by the GPU, the additional tuning performance data tochange GPU performance when the allocated power is shifted from the USBdevice to the GPU; and wherein shifting, by the GPU, at least theportion of the allocated power comprises: obtaining power consumptiondata of the USB device when allocated power is provided to the USBdevice; and based on the power consumption data of the USB device,changing an amount of power allocated to the GPU.
 8. A computing devicecomprising: at least one universal serial bus (USB) port; a powerdelivery controller operatively coupled to the USB port; at least onegraphics processing unit (GPU), operatively coupled to the powerdelivery controller and to the USB port, configured to: determine anallocated power for a USB device connectable through the USB port; issueallocated power information to the power delivery controller for the USBdevice to cause the allocated power to be provided to the USB device;and shift, at least a portion of the allocated power from the USB deviceto the GPU in response to a usage change event associated with the USBdevice.
 9. The computing device of claim 8 wherein the GPU is operativeto use the allocated power shifted from the USB device to change a GPUperformance level while leaving at least one of: a frequency and voltagesetting of the GPU at a current level.
 10. The computing device of claim8 wherein shifting by the GPU comprises using the allocated powershifted from the USB device to change a GPU performance level, andwherein the computing device further comprises: a processor, operativelycoupled to the GPU, configured to: determine additional GPU tuningperformance data when allocated power is provided to the USB device,based on available GPU power; and using by the GPU, the additionaltuning performance data to change GPU performance when the allocatedpower is shifted from the USB device to the GPU.
 11. The computingdevice of claim 8 wherein the GPU is configured to shift, at least aportion of the allocated power back to the USB device in response toanother usage change event.
 12. The computing device of claim 8 whereinthe GPU is configured to determine the allocated power for the USBdevice based on power usage requirements of the GPU and based on powerusage requirements of the USB device.
 13. The computing device of claim8 wherein the GPU is configured to shift at least the portion of theallocated power from the USB device to the GPU by at least one of:maintaining an amount of allocated power constant or changing an amountof allocated power upon request from the USB device.
 14. The computingdevice of claim 8 further comprising a processor operatively coupled tothe GPU, operative to: determine additional GPU tuning performance datawhen allocated power is provided to the USB device, based on availableGPU power; in response to the determination of the additional GPU tuningperformance data, using, by the GPU, the additional tuning performancedata to change GPU performance when the allocated power is shifted fromthe USB device to the GPU; and wherein the GPU is operative to shift atleast the portion of the allocated power by: obtaining power consumptiondata of the USB device when allocated power is provided to the USBdevice; and based on the power consumption data of the USB device,changing an amount of power allocated to the GPU.
 15. A storage mediumproduct comprising executable instructions stored thereon that whenexecuted by one or more graphics processing units (GPU's), causes theone or more GPU's to: determine an allocated power for a USB device;issue allocated power information for the USB device to cause theallocated power to be provided to the USB device; and shift at least aportion of the allocated power from the USB device to the GPU inresponse to a usage change event associated with the USB device.
 16. Thestorage medium product of claim 15 comprising executable instructionsstored thereon that when executed by one or more graphics processingunits (GPU's), causes the one or more GPU's to use the allocated powershifted from the USB device to change a GPU performance level whileleaving at least one of: a frequency and voltage setting of the GPU at acurrent level.
 17. The storage medium product of claim 15 comprisingexecutable instructions stored thereon that when executed by one or moregraphics processing units (GPU's), causes the one or more GPU's to usethe allocated power shifted from the USB device to change a GPUperformance level, and use additional GPU tuning performance dataobtained from a processor to change GPU performance when the allocatedpower is shifted from the USB device to the GPU.
 18. The storage mediumproduct of claim 15 comprising executable instructions stored thereonthat when executed by one or more graphics processing units (GPU's),causes the one or more GPU's to shift at least a portion of theallocated power back to the USB device in response to another usagechange event.
 19. The storage medium product of claim 15 comprisingexecutable instructions stored thereon that when executed by one or moregraphics processing units (GPU's), causes the one or more GPU's todetermine the allocated power for the USB device based on power usagerequirements of the GPU and based on power usage requirements of the USBdevice.
 20. The storage medium product of claim 15 comprising executableinstructions stored thereon that when executed by one or more graphicsprocessing units (GPU's), causes the one or more GPU's to: useadditional tuning performance data provided by a processor, to changeGPU performance when the allocated power is shifted from the USB deviceto the GPU; and shift the at least portion of the allocated power by:obtaining power consumption data of the USB device when allocated poweris provided to the USB device; and based on the power consumption dataof the USB device, changing an amount of power allocated to the GPU.